home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / qbx300a.arc / QBX300A.DOC next >
Text File  |  1987-06-21  |  9KB  |  292 lines

  1.  
  2.  
  3.   QBX - Quick Basic Cross Referencer                      Version  3.00a
  4.   (c) Copyright Vernon D. Buerg 1986, 1987.               June 21,  1987
  5.   ALL RIGHTS RESERVED.
  6.  
  7.  
  8.  
  9.   Purpose
  10.   -------
  11.  
  12.         Determines cross references to alphanumeric labels and symbols
  13.         within a BASIC source program.
  14.  
  15.   Syntax
  16.   ------
  17.  
  18.         QBX [filename[.BAS]]  [/D]          [/Lnn]  [/Cnnn]
  19.                               [/P]
  20.                               [/F[(filename)]]
  21.                               [/N]
  22.  
  23.   Remarks
  24.   -------
  25.  
  26.         If no filename is supplied, you are prompted to enter the
  27.         file name of the BASIC source file. The source file must
  28.         have been saved in ASCII (,A) format. The program may contain
  29.         any valid combination of numeric and alphameric labels. The
  30.         syntax is dictated by the Microsoft Quick Basic Compiler manual
  31.         and the IBM BASIC, Version 3.1, manual.
  32.  
  33.         The source file may contain TAB characters but their use
  34.         may cause the listing to be mis-aligned.
  35.  
  36.         The output consists of a program listing and a cross-reference
  37.         listing. The destination for the listing may be specified in
  38.         the command as:
  39.  
  40.                 /D  display listings on the console display
  41.                 /P  print the listings on the LPT1: printer
  42.                 /F  write the listings to a file; may be supplied as (filename)
  43.                 /N  suppress all listings
  44.  
  45.         For example, /F(MYPROG.LST) sets a destination of a file with
  46.         the name MYPROG.LST. If no extension is supplied, .LST is used
  47.         for the program listing and .REF is used for the cross-reference
  48.         listing.
  49.  
  50.         If no destination parameter is supplied, you will be asked to supply
  51.         it.
  52.  
  53.         The number of lines per page may be suppied by the /L parameter,
  54.         for example /L66 sets a default of 66 lines per page.
  55.  
  56.         The number of columns per line may be supplied by the /C parameter,
  57.         for example /C132 sets a default of 133 columns per line.
  58.  
  59.  
  60.  
  61.  
  62.   Meta Commands
  63.   -------------
  64.  
  65.         The source file may contain the meta commands described in
  66.         the Quick Basic (versions 1 or 2) manuals. These meta commands
  67.         are currently recognized:
  68.  
  69.                 $INCLUDE  - cause QBX to include the named file with
  70.                             the current source program, and may be nested
  71.                             to approximately 15 levels;
  72.                 $LINESIZE - sets the number of characters per page;
  73.                 $PAGESIZE - sets the number of program lines per page;
  74.  
  75.                 $PAGE     - forces a new listing page
  76.                 $SKIP     - inserts one blank line into the listing
  77.                 $SKIP:n   - inserts "n" blank lines into the listing
  78.                 $SUBTITLE - adds a subtitle to each listing page second line
  79.                 $TITLE    - adds a title to each listing page; if none
  80.                             are supplied, the title is "QBX"
  81.  
  82.   Operation
  83.   ---------
  84.  
  85.         There are two parts to the operation of QBX. The first phase
  86.         produces a program listing and builds the internal tables
  87.         representing the program's labels and symbols. The second
  88.         phase produces a label and a symbol cross reference.
  89.  
  90.         The output from each phase may be directed to the screen,
  91.         a printer (LPT1), a file, or nowhere. You are prompted for
  92.         the destination.
  93.  
  94.         The format of the listings is governed by two values: the
  95.         number of lines per page, and the number of columns per line.
  96.         You supply  both values. The defaults are 66 lines per page
  97.         and 80 columns. You may over-ride these values by using the
  98.         meta commands $PAGESIZE and $LINESIZE in the program. If the
  99.         console is used for output, the values are always set to 24
  100.         lines and 80 columns with an option at the end of each page
  101.         to pause or continue.
  102.  
  103.         You must set your printer to the appropriate lines and columns
  104.         values before running QBX. It does not send any printer codes.
  105.  
  106.         The internal tables contain the labels, symbols, and cross
  107.         reference information. The current limits are 2500 labels and
  108.         symbols, and approximately 16000 cross references (depends
  109.         upon the amount of memory available. There is also a limit
  110.         off 200 fields per statement. A field is a symbol, label,
  111.         delimiter, or operator. These values are summarized at the
  112.         end of program execution.
  113.  
  114. |       You may terminate processing by pressing the ESCape key.
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.   Version history
  123.   ---------------
  124.  
  125.         1.01-1.08, 1/17/86, the hack begins
  126.         1.09, 1/19/86
  127.          - fix Error6 in line 3440
  128.          - correct listing of long program lines
  129.          - add missing 30 keywords (oops)
  130.  
  131.         1.10, 1/19/86 - speed up analysis phase
  132.         1.11, 1/22/86 - correction for comments
  133.         1.12,1.13; 1/22/86 - revise symbol table lookup
  134.         1.14, 1/24/86 - implement meta commands
  135.         1.15, 1/27/86 - correct FIELD as labels
  136.         1.16,1.17, 1/28/86 - improve analysis routines
  137.  
  138.         1.18, 2/1/86
  139.          - externalize XREFS table to improve housekeeping time
  140.          - requires LINK QBX+XREF; followed by EXEPATCH to set x1800 max paras
  141.         1.19, 2/3/86
  142.          - optimize xref listing and external xref subroutines
  143.         1.20, 2/4/86
  144.          - add external UPC subroutine
  145.         1.21-1.23, 2/7/86
  146.          - add hash table for symbol look-up
  147.          - use binary search for keyword look-up
  148.         1.24-1.26, 2/8/86
  149.          - correct Error 6 at line 3900
  150.         1.27-1.28, 2/13/86
  151.          - remove UPC due to fouling meta commands
  152.          - clean up headings and titles
  153.  
  154.         1.29, 3/9/86 - correct EXEPATCH problem
  155.         1.30, 3/11/86 - correct Print function
  156.         1.31, 4/02/86 - print after parsing record
  157.         1.32, 4/08.86 - correct label case, correct tabs
  158.         1.33, 4/22/86 - correct page title positioning
  159.         1.34, 6/23/86 - increase maximum FIELDS to 200
  160.  
  161.         2.00, 7/18/86 - add QB 2.00 keywords
  162.  
  163.         2.01, 9/27/86 - correct not finding labels with leading blanks
  164.  
  165.         2.02, 11/12/86
  166.           - Correct problem with $INCLUDE
  167.           - Correct error 52 at 3350 if don't want xref output
  168.           - expand label tables from 2000 to 2500
  169.           - supply documentation
  170.  
  171.         2.03, 11/17/86
  172.           - correct handling of continued lines (using underscore) which
  173.             are followed by comments
  174.           - correct handling of $TITLE; default title is now program name
  175.           - correct handling of lower case meta commands
  176.           - show name(s) of included files during first phase
  177.  
  178.  
  179.  
  180.  
  181.  
  182.   Version history (cont'd)
  183.   ---------------
  184.  
  185.  
  186.         2.05, 11/28/86
  187.           - add command line options for destination, lines per page,
  188.             and columns per line
  189.           - improve detection of label versus symbol references for numbers
  190.           - note assignment to symbols by an asterisk in cross reference
  191.  
  192.         2.06, 12/06/86
  193.           - fix incorrect statment numbers in xref after labels
  194.           - remove duplicate references
  195.  
  196.         2.07, 3/3/87 by David W. Campbell
  197.           - acknowledge missing trailing double quotes
  198.           - don't number blank or null lines
  199.           - don't print page eject or blank line at top of first page
  200.           - correct meta pagesize
  201.           - correct default pagesize
  202.  
  203.         2.07b, 3/4/87 by David W. Campbell
  204.           - add distinction between dimensioned and undimensioned variables
  205.  
  206. |       3.00a, 6/21/87
  207. |         - added keywords for QB version 3
  208. |         - more work needs to be done.
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.   Notes
  243.   -----
  244.  
  245.         Copyright Vernon D. Buerg 1986, 1987.  All rights reserved.
  246.  
  247.         QBX was written using the Microsoft Quick Basic Compiler,
  248.         Version 2.01, and one assembler subroutine. At least 128K
  249.         of memory is required, but 192K or more is recommended. The
  250.         additional memory is used to increase the limits of the numbers
  251.         of labels, symbols and cross references that QBX can process.
  252.  
  253.  
  254.         QBX is  supplied  for  personal,  private  use. Feel free to
  255.         distribute QBX given these restrictions:
  256.  
  257.           o  the program  shall be supplied in its original,  unmodified
  258.              form, which includes this documentation;
  259.  
  260.           o  no fee is charged;
  261.  
  262.           o  "commmercial" use without a license is prohibited;
  263.  
  264.           o  the program may not be included -  or bundled - with  other
  265.              goods or services.  Exceptions may be granted upon  written
  266.              request only. This applies to clubs and distributors.
  267.  
  268.  
  269.         Please direct your inquiries, complaints, suggestions, etc., to:
  270.  
  271.                         Vernon D. Buerg
  272.                         456 Lakeshire Drive
  273.                         Daly City, CA  94015
  274.  
  275.                         Data:        415-994-2944,  VOR 24 hour BBS
  276.                         Compuserve:  70007,1212
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.